package mao.leetcode.offer;

/**
 * @author Totoro
 * @date 2020/8/15
 * @explain:
 */
public class offer67 {

    //其实符号位就在开头没有必要每次使用init,以后优化。
    class Solution {
        public int strToInt(String str) {
            if (null == str || str.trim().equals("")) return 0;
            str = str.trim();
            long res = 0;
            boolean flag = true;
            boolean init = false;
            for(int i=0;i<str.length();i++){
                char c  = str.charAt(i);
                if (c == '-' && !init ){
                    flag = false;
                    init =true;
                }else if( c == '+' && !init){
                    flag = true;
                    init = true;
                }else if(c >= '0' && c<='9'){
                    res=res*10+c-'0';
                    init = true;
                    if (res > Integer.MAX_VALUE){
                        break;
                    }
                }else{
                    break;
                }
            }
            if (!flag){
                res = -res;
            }
            if (res > Integer.MAX_VALUE){
                return Integer.MAX_VALUE;
            }
            if (res < Integer.MIN_VALUE){
                return Integer.MIN_VALUE;
            }
            return (int)res;
        }
    }
}
